8LED with 74HC595 (Nano_Every)
https://gyazo.com/1aa2df05bfaf805af6f13bcb611d164f
74HC595(8bitシフトレジスタ)
くぼみ上の左端、16Pin(VCC=5V)、右端、9P(QH’=複数使う時の送り端子)
くぼみ下の左端、1Pin(QB)、右端、8P(GND)
https://gyazo.com/c88c2fe9dbbe7df003e11051c0a49b32
7Pin(QH)最初に光るLED
6Pin(QG)2番目に光るLED
5Pin(QF)3番目に光るLED
4Pin(QE)4番目に光るLED
3Pin(QD)5番目に光るLED
2Pin(QC)6番目に光るLED
1Pin(QB)7番目に光るLED
15Pin(QA)最後に光るLED
hr.icon
https://gyazo.com/672730ecf450202d7be03c593f9b5fa6
D12→橙→「SER」 dataPin = 12; // 74HC595
D11→白→「RCLK」 latchPin = 11; // 74HC595
D10→緑→「SRCLK」 clockPin = 10; //74HC595
5V→赤→「VCC」 ブレッドボードの電源ライン(赤)
GND→黒→「GND」 ブレッドボードのGNDライン(青)
hr.icon
https://gyazo.com/262702bf9f881c31fdf48643afbfee88
緑→赤→黄→青と順々に点灯していき、全部点灯したら、全部消える(上記コードと同じ動作)
code:.ino
//Pin connected to DS of 74HC595
int dataPin = 12;
//Pin connected to ST_CP of 74HC595
int latchPin = 11;
//Pin connected to SH_CP of 74HC595
int clockPin = 10;
//**** for MSBFIRST *****
byte StoBar9={0b00000000, 0b00000001,
0b00000011,
0b00000111,
0b00001111,
0b00011111,
0b00111111,
0b01111111,
0b11111111,
};
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void bar8(int s) {
digitalWrite(latchPin, LOW);
if(s>8){
shiftOut(dataPin, clockPin, MSBFIRST, StoBars-8); s=8;
}
shiftOut(dataPin, clockPin, MSBFIRST, StoBars); digitalWrite(latchPin, HIGH);
}
void loop() {
for (int j = 0; j < 11; j++) {
bar8(j);
delay(500);
}
}
hr.icon
https://gyazo.com/4a1447b9bb36644ffe0793bb101c288e
このコードだと、青→黄→赤→緑 と逆から点灯します。
code:.ino
//Pin connected to DS of 74HC595
int dataPin = 12;
//Pin connected to ST_CP of 74HC595
int latchPin = 11;
//Pin connected to SH_CP of 74HC595
int clockPin = 10;
//**** for LSBFIRST *****
byte StoBar9={0b00000000, 0b10000000,
0b11000000,
0b11100000,
0b11110000,
0b11111000,
0b11111100,
0b11111110,
0b11111111,
};
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void bar8(int s) {
digitalWrite(latchPin, LOW);
if(s>8){
shiftOut(dataPin, clockPin, MSBFIRST, StoBars-8); s=8;
}
shiftOut(dataPin, clockPin, MSBFIRST, StoBars); digitalWrite(latchPin, HIGH);
}
void loop() {
for (int j = 0; j < 11; j++) {
bar8(j);
delay(500);
}
}
hr.icon
このコードだと、緑→赤→黄までの5つが3秒点灯し、1秒消えます。
code:.ino
/*
bar8()関数を作ってみました。
S値をたとえばS5なら bar8(5); とするとbar_ledが5つ点灯します。
0をいれるとクリアーします。
*/
//Pin connected to DS of 74HC595
int dataPin = 12;
//Pin connected to ST_CP of 74HC595
int latchPin = 11;
//Pin connected to SH_CP of 74HC595
int clockPin = 10;
//**** for MSBFIRST *****
byte StoBar9={0b00000000, 0b00000001,
0b00000011,
0b00000111,
0b00001111,
0b00011111,
0b00111111,
0b01111111,
0b11111111,
};
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void bar8(int s) {
digitalWrite(latchPin, LOW);
if(s>8){
shiftOut(dataPin, clockPin, LSBFIRST, StoBars-8); // shiftOut(dataPin, clockPin, MSBFIRST, StoBars-8); s=8;
}
shiftOut(dataPin, clockPin, LSBFIRST, StoBars); // shiftOut(dataPin, clockPin, MSBFIRST, StoBars-8); digitalWrite(latchPin, HIGH);
}
void loop() {
bar8(5);
delay(3000);
bar8(0);
delay(1000);
}
hr.icon
hr.icon